# -*- coding: utf-8 -*-
import requests
from langchain_core.tools import tool

from . import settings


@tool
def baidu_search_tool(query: str) -> str:
    """
    使用Baidu Search API进行联网搜索，返回搜索结果的字符串。
    参数:
    - query: 搜索关键词
    返回:
    - 搜索结果的字符串形式
    """
    print('调用百度搜索...')
    url = 'https://qianfan.baidubce.com/v2/ai_search'
    headers = {
        'Authorization': f'Bearer {settings.BAIDU_SEARCH_API_KEY}',  # 请替换为你的API密钥
        'Content-Type': 'application/json'
    }
    messages = [
        {
            "content": query,
            "role": "user"
        }
    ]
    data = {
        "messages": messages,
        "search_source": "baidu_search_v2",
        "search_recency_filter": "month"  # 可以自定义各种检索条件
    }

    response = requests.post(url, headers=headers, json=data)

    if response.status_code == 200:
        # 返回给大模型的格式化的搜索结果文本
        # 可以自己对博查的搜索结果进行自定义处理
        return str(response.json())
    else:
        raise Exception(f"API请求失败，状态码: {response.status_code}, 错误信息: {response.text}")


